Conventional TCP is very sensitive to packet losses. For example, with the congestion control mechanisms of TCP NewReno, a mere 0.1% random packet loss in the path could result in a 20-30% drop in goodput. This is the primary reason TCP does not perform well over paths that involve lossy links (e.g., poorly connected wireless links).
TCP's loss intolerance is fundamentally a byproduct of Van Jacobson's congestion control and congestion avoidance (VJ-CCCA) algorithm, on which congestion control in TCP and all its modern variations are built. In 1988, Jacobson described the “congestion collapse” problem observed in the ARPANET, during which goodput dropped by a factor of over one thousand due to congestion. Jacobson outlined VJ-CCCA as a remedy, which remains the foundation of conventional TCP congestion control mechanisms today. Jacobson's algorithm treats observed packet loss as a signal of network congestion, and assigns full responsibility for addressing network congestion problems to the endpoints. VJ-CCCA works by slowing down endpoint activity in response to packet loss, based on the assumption that the links themselves are reliable. VJ-CCCA has a goal of protecting the Internet itself by avoiding congestion collapse.
Those design choices were appropriate to the conditions of the time, when the network and routing infrastructures were in their infancy, with little overloading protection and very rudimentary traffic management. Most of the hosts at that time were essentially directly connected to the backbone, and there were no ISPs. As a result, network stability was completely a function of the behaviors of the hosts. Furthermore, links were based on physical connections with low bit-error rates, and thus transmission errors were relatively rare.
The Jacobson algorithm and the subsequent variations thereon worked well and delivered stability to the Internet for a long period of time after its introduction. But with the evolution and commercialization of the Internet during the last decade or so, certain undesirable side effects of this strong remedy are being seen. One such problem is the degradation of goodput when the path becomes lossy, which is a common scenario with wireless links such as those based 802.11 (Wi-Fi) or cellular protocols. Treating packet loss as a sign of congestion assumes reliable links, and thus TCP congestion control which is based on VJ-CCCA is highly sensitive to packet loss. This becomes problematic with the current prevalence of wireless links, on which packets are frequently lost as a result of transmission errors rather than congestion.
Another fundamental change between the 1988 ARPANET and the modern Internet is the introduction of the service and user management layer, which is a key result of the commercialization of the Internet. This management layer is necessary because no for profit business could be practicably built without control over who could access its services and to what extent. This service/user management layer (which often takes the form of admission control, subscriber management, policy management, network security, etc.) sits between the users (the hosts) and the actual traffic routing function (the routers and backbone), and only permits user traffic that meets the service agreement and usage policy and that does not pose security threats, including threats to the network's stability, to be passed onto the routing function. With the addition of this management layer, the stability of the network is no longer a function of the behaviors of the individual hosts/users. The original “disease” (network congestion collapse) that Jacobson's remedy was created to “treat” has arguably become a very unlikely possibility. This fundamentally changes the assumptions of VJ-CCCA, and brings the original congestion control design choices into question.
It would be desirable to address these issues.